package com.codefish.framework.spring.core.io;

import java.io.*;
import java.nio.charset.StandardCharsets;

/**
 * @author <a href='https://gitee.com/hzf2281'>codefish</a>
 * @version 1.0.0
 * @since 2022/09/30 下午 03:15
 */
public interface Resource {

    /**
     * 获取资源的输入流
     *
     * @return 资源的输入流
     * @throws IOException IO异常
     */
    InputStream getInputStream() throws IOException;

    /**
     * 获得资源字符输入流
     *
     * @return 资源字符输入流
     * @throws IOException IO异常
     */
    default Reader getReader() throws IOException {
        return new BufferedReader(new InputStreamReader(getInputStream(), StandardCharsets.UTF_8));
    }

    /**
     * 获取资源名称
     *
     * @return 资源名称
     */
    String getResourceName();

    /**
     * 获取资源路径
     *
     * @return 资源路径
     */
    String getResourcePath();
}
